ctl.!default {
	type hw
	card Intel
}

pcm.intel { type hw; card Intel }
ctl.oex { type hw; card Intel }

pcm.oex { type hw; card OEX }
ctl.oex { type hw; card OEX }

pcm.!default {
	type asym
	playback.pcm "out"
	capture.pcm "hw:2,0"
 }

pcm.dmixer {
	type dmix
	ipc_key 1024
	ipc_perm 0666
	slave {
		pcm "intel"
		period_time 0
		period_size 1024
		buffer_size 4096
		channels 2
	}
	bindings {
		0 0
		1 1
	}
}

pcm.dmixerloop {
	type dmix
	ipc_key 2048
	ipc_perm 0666
	slave {
		pcm "hw:Loopback,0,0"
		period_time 0
		period_size 1024
		buffer_size 4096
		channels 2
	}
	bindings {
		0 0
		1 1
	}
}

pcm.loopout {
	type plug
	slave.pcm "hw:Loopback,1,0"
}

ctl.dmixer {
	type hw
	card 1
}

pcm.dsnooper {
	type dsnoop
	ipc_key 2048
	ipc_perm 0666
	slave.pcm "snd_card"
	slave
	{
		period_time 0
		period_size 1024
		buffer_size 4096
		channels 2
	}
	bindings {
		0 0
		1 1
	}
}

pcm.out {
	type plug
	slave.pcm {
		type multi
		slaves {
			a { channels 2 pcm "dmixer" }
			b { channels 2 pcm "dmixerloop" }
		}
		bindings {
			0 { slave a channel 0 }
			1 { slave a channel 1 }
			2 { slave b channel 0 }
			3 { slave b channel 1 }
		}
	}
	ttable [
		[ 1 0 1 0 ]   # left  -> a.left,  b.left
		[ 0 1 0 1 ]   # right -> a.right, b.right
	]
}
